package cn.wolfcode.wolf2world.service;

import cn.wolfcode.wolf2world.domain.Destination;
import cn.wolfcode.wolf2world.domain.StrategyCatalog;
import cn.wolfcode.wolf2world.query.DestinationQueryObject;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * @author 杨兴健
 * @Date 2020/8/9 20:06
 */
public interface DestinationService {
    void insert(Destination destination);
    void update(Destination destination);
    void delete(String id);
    Destination get(String id);
    List<Destination> list();

    Page<Destination> query(DestinationQueryObject qo);

    /**
     * 根据区域id查询关联的目的地
     * @param rid
     * @return
     */
    List<Destination> queryByRegionId(String rid);


    /**
     * 根据id更新简介
     * @param id
     * @param info
     * @return
     */
    void updateInfo(String id, String info);

    /**
     * 循环或者递归查询父目的地
     *
     * @param parentId
     * @return
     */
    List<Destination> toasts( String parentId);

    /**
     * 根据id获取目的地,id可能包括-1
     * @param regionId
     * @return
     */
    List<Destination> search(String regionId);

    /**
     * 根据层面查询目的地
     * @param deep
     * @return
     */
    List<Destination> queryByDeep(Integer deep);

    /**
     * 根据name,目的地
     * @param name
     * @return
     */
    Destination queryByName(String name);

    /**
     * 概况下攻略分类和攻略副标题
     * @return
     */
    List<StrategyCatalog> queryCatalog(String destId);
}
